﻿using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Data.SqlClient;

/// <summary>
/// Descripción breve de GestionEstadisticas
/// </summary>
public class GestionEstadisticasCasino
{
    static GestionEstadisticasCasino instance;
	private GestionEstadisticasCasino()
	{
	}
    public static GestionEstadisticasCasino getInstance()
    {
        if (instance == null)
        {
            instance = new GestionEstadisticasCasino();
        }
        return instance;
    }
    public double getDineroGanado(String idJuego)
    {
        double total = 0.0;
        SqlConnection con = Conexion.getConexion();
        con.Open();
        try
        {
            SqlDataReader myReader = null;
            SqlCommand myCommand = new SqlCommand("SELECT SUM(Jugada.Ganado) AS mio FROM Juego INNER JOIN Mesa ON Juego.IdJuego = Mesa.IdJuego INNER JOIN Jugada ON Mesa.IdMesa = Jugada.IdMesa WHERE Juego.IdJuego='"+ idJuego +"'", con);
            myReader = myCommand.ExecuteReader();
            while (myReader.Read())
            {
                String cadena = myReader["mio"].ToString();
                double sal = Double.Parse(cadena);
                total = +sal;
            }
        }
        catch (Exception e)
        {
            Console.WriteLine(e.ToString());
        }
        con.Close();
        return total;
    }
    public double getTotalApostado(String idJuego)
    {
        double total = 0.0;
        SqlConnection con = Conexion.getConexion();
        con.Open();
        try
        {
            SqlDataReader myReader = null;
            SqlCommand myCommand = new SqlCommand("SELECT SUM(Jugada.Apostado) AS mio FROM Juego INNER JOIN Mesa ON Juego.IdJuego = Mesa.IdJuego INNER JOIN Jugada ON Mesa.IdMesa = Jugada.IdMesa WHERE Juego.IdJuego='" + idJuego + "'", con);
            myReader = myCommand.ExecuteReader();
            while (myReader.Read())
            {
                String cadena = myReader["mio"].ToString();
                double sal = Double.Parse(cadena);
                total = +sal;
            }
        }
        catch (Exception e)
        {
            Console.WriteLine(e.ToString());
        }
        con.Close();
        return total;
    }
    public double getDineroGanadoCasino(String idJuego)
    {
        double total = 0.0;
        SqlConnection con = Conexion.getConexion();
        con.Open();
        try
        {
            SqlDataReader myReader = null;
            SqlCommand myCommand = new SqlCommand("SELECT SUM(Jugada.GCasino) AS mio FROM Juego INNER JOIN Mesa ON Juego.IdJuego = Mesa.IdJuego INNER JOIN Jugada ON Mesa.IdMesa = Jugada.IdMesa WHERE Juego.IdJuego='" + idJuego + "'", con);
            myReader = myCommand.ExecuteReader();
            while (myReader.Read())
            {
                String cadena = myReader["mio"].ToString();
                double sal = Double.Parse(cadena);
                total = +sal;
            }
        }
        catch (Exception e)
        {
            Console.WriteLine(e.ToString());
        }
        con.Close();
        return total;
    }
    public String nombreJuego(String idJuego)
    {
        String nombre= null;
        SqlConnection con = Conexion.getConexion();
        con.Open();
        try
        {
            SqlDataReader myReader = null;
            SqlCommand myCommand = new SqlCommand("SELECT [NombreJuego] FROM [Juego] WHERE [IdJuego] = '"+ idJuego+ "'", con);
            myReader = myCommand.ExecuteReader();
            while (myReader.Read())
            {
                nombre = myReader["NombreJuego"].ToString();
            }
        }
        catch (Exception e)
        {
            Console.WriteLine(e.ToString());
        }
        con.Close();
        return nombre;
    }
    public int dameJugadas(String idJuego)
    {
        int total = 0;
        SqlConnection con = Conexion.getConexion();
        con.Open();
        try
        {
            SqlDataReader myReader = null;
            SqlCommand myCommand = new SqlCommand("SELECT COUNT(Jugada.IdJugada) AS mio FROM Juego INNER JOIN Mesa ON Juego.IdJuego = Mesa.IdJuego INNER JOIN Jugada ON Mesa.IdMesa = Jugada.IdMesa WHERE Juego.IdJuego='" + idJuego + "'", con);
            myReader = myCommand.ExecuteReader();
            while (myReader.Read())
            {
                String cadena = myReader["mio"].ToString();
                total = int.Parse(cadena);
            }
        }
        catch (Exception e)
        {
            Console.WriteLine(e.ToString());
        }
        con.Close();
        return total;
    }
    public int dameMesas(String idJuego)
    {
        int total = 0;
        SqlConnection con = Conexion.getConexion();
        con.Open();
        try
        {
            SqlDataReader myReader = null;
            SqlCommand myCommand = new SqlCommand("SELECT COUNT(Mesa.IdMesa) AS mio FROM Juego INNER JOIN Mesa ON Juego.IdJuego = Mesa.IdJuego WHERE Juego.IdJuego='" + idJuego + "'", con);
            myReader = myCommand.ExecuteReader();
            while (myReader.Read())
            {
                String cadena = myReader["mio"].ToString();
                total = int.Parse(cadena);
            }
        }
        catch (Exception e)
        {
            Console.WriteLine(e.ToString());
        }
        con.Close();
        return total;
    }
        public Double gananciaJuego(String idMesa)
    {
        double ganado= 0.0;
        SqlConnection con = Conexion.getConexion();
        con.Open();
        try
        {
            SqlDataReader myReader = null;
            SqlCommand myCommand = new SqlCommand("SELECT SUM(Ganado) AS mio FROM Jugada WHERE IdMesa ='" + idMesa + "'", con);
            myReader = myCommand.ExecuteReader();
            while (myReader.Read())
            {
                String cadena = myReader["mio"].ToString();
                ganado = double.Parse(cadena);
            }
        }
        catch (Exception e)
        {
            Console.WriteLine(e.ToString());
        }
        con.Close();
        return ganado;
    }
    
    public String nombreJuegoMesa(String idMesa)
    {
        String nombre= null;
        SqlConnection con = Conexion.getConexion();
        con.Open();
        try
        {
            SqlDataReader myReader = null;
            SqlCommand myCommand = new SqlCommand("SELECT Juego.NombreJuego FROM Juego INNER JOIN Mesa ON Juego.IdJuego = Mesa.IdJuego WHERE Mesa.IdMesa ='" + idMesa + "'", con);
            myReader = myCommand.ExecuteReader();
            while (myReader.Read())
            {
                nombre = myReader["NombreJuego"].ToString();
            }
        }
        catch (Exception e)
        {
            Console.WriteLine(e.ToString());
        }
        con.Close();
        return nombre;
    }
    public int dameJugadaMesas(String idMesa)
    {
        int total = 0;
        SqlConnection con = Conexion.getConexion();
        con.Open();
        try
        {
            SqlDataReader myReader = null;
            SqlCommand myCommand = new SqlCommand("SELECT COUNT(Jugada.IdJugada) AS aa FROM Juego INNER JOIN Mesa ON Juego.IdJuego = Mesa.IdJuego INNER JOIN Jugada ON Mesa.IdMesa = Jugada.IdMesa WHERE Jugada.IdMesa='" + idMesa + "'", con);
            myReader = myCommand.ExecuteReader();
            while (myReader.Read())
            {
                String cadena = myReader["aa"].ToString();
                total = int.Parse(cadena);
            }
        }
        catch (Exception e)
        {
            Console.WriteLine(e.ToString());
        }
        con.Close();
        return total;
    }

    public int dameUsuariosMesas(String idMesa)
    {
        int total = 0;
        SqlConnection con = Conexion.getConexion();
        con.Open();
        try
        {
            SqlDataReader myReader = null;
            SqlCommand myCommand = new SqlCommand("SELECT COUNT(IdUsuario) AS aa FROM Jugada WHERE Jugada.IdMesa = '" + idMesa + "'", con);
            myReader = myCommand.ExecuteReader();
            while (myReader.Read())
            {
                String cadena = myReader["aa"].ToString();
                total = int.Parse(cadena);
            }
        }
        catch (Exception e)
        {
            Console.WriteLine(e.ToString());
        }
        con.Close();
        return total;
    }
    public Double dineroApostado(String idMesa)
    {
        double ganado = 0.0;
        SqlConnection con = Conexion.getConexion();
        con.Open();
        try
        {
            SqlDataReader myReader = null;
            SqlCommand myCommand = new SqlCommand("SELECT SUM(Apostado) AS mio FROM Jugada WHERE Jugada.IdMesa= '" + idMesa + "'", con);
            myReader = myCommand.ExecuteReader();
            while (myReader.Read())
            {
                String cadena = myReader["mio"].ToString();
                ganado = double.Parse(cadena);
            }
        }
        catch (Exception e)
        {
            Console.WriteLine(e.ToString());
        }
        con.Close();
        return ganado;
    }
    public Double gananciaCasinoJuego(String idMesa)
    {
        double ganado = 0.0;
        SqlConnection con = Conexion.getConexion();
        con.Open();
        try
        {
            SqlDataReader myReader = null;
            SqlCommand myCommand = new SqlCommand("SELECT SUM(GCasino) AS mio FROM Jugada WHERE IdMesa ='" + idMesa + "'", con);
            myReader = myCommand.ExecuteReader();
            while (myReader.Read())
            {
                String cadena = myReader["mio"].ToString();
                ganado = double.Parse(cadena);
            }
        }
        catch (Exception e)
        {
            Console.WriteLine(e.ToString());
        }
        con.Close();
        return ganado;
    }
}
